diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 2705a5d..8b6616b 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -116,7 +116,7 @@
 int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 	ulong		iflag;
-	char		*name;
+	const char	*type_name;
 	uint		unc_len = CFG_BOOTM_LEN;
 	int		verify = getenv_verify();
 
@@ -189,12 +189,10 @@
 
 	switch (image_get_type (hdr)) {
 	case IH_TYPE_KERNEL:
-		name = "Kernel Image";
 		os_data = image_get_data (hdr);
 		os_len = image_get_data_size (hdr);
 		break;
 	case IH_TYPE_MULTI:
-		name = "Multi-File Image";
 		image_multi_getimg (hdr, 0, &os_data, &os_len);
 		break;
 	default:
@@ -222,6 +220,8 @@
 	dcache_disable();
 #endif
 
+	type_name = image_get_type_name (image_get_type (hdr));
+
 	image_start = (ulong)hdr;
 	image_end = image_get_image_end (hdr);
 	load_start = image_get_load (hdr);
@@ -230,9 +230,9 @@
 	switch (image_get_comp (hdr)) {
 	case IH_COMP_NONE:
 		if (image_get_load (hdr) == img_addr) {
-			printf ("   XIP %s ... ", name);
+			printf ("   XIP %s ... ", type_name);
 		} else {
-			printf ("   Loading %s ... ", name);
+			printf ("   Loading %s ... ", type_name);
 
 			memmove_wd ((void *)image_get_load (hdr),
 				   (void *)os_data, os_len, CHUNKSZ);
@@ -242,7 +242,7 @@
 		}
 		break;
 	case IH_COMP_GZIP:
-		printf ("   Uncompressing %s ... ", name);
+		printf ("   Uncompressing %s ... ", type_name);
 		if (gunzip ((void *)image_get_load (hdr), unc_len,
 					(uchar *)os_data, &os_len) != 0) {
 			puts ("GUNZIP ERROR - must RESET board to recover\n");
@@ -254,7 +254,7 @@
 		break;
 #ifdef CONFIG_BZIP2
 	case IH_COMP_BZIP2:
-		printf ("   Uncompressing %s ... ", name);
+		printf ("   Uncompressing %s ... ", type_name);
 		/*
 		 * If we've got less than 4 MB of malloc() space,
 		 * use slower decompression algorithm which requires
@@ -544,65 +544,12 @@
 
 static void print_type (image_header_t *hdr)
 {
-	char *os, *arch, *type, *comp;
+	const char *os, *arch, *type, *comp;
 
-	switch (image_get_os (hdr)) {
-	case IH_OS_INVALID:	os = "Invalid OS";		break;
-	case IH_OS_NETBSD:	os = "NetBSD";			break;
-	case IH_OS_LINUX:	os = "Linux";			break;
-	case IH_OS_VXWORKS:	os = "VxWorks";			break;
-	case IH_OS_QNX:		os = "QNX";			break;
-	case IH_OS_U_BOOT:	os = "U-Boot";			break;
-	case IH_OS_RTEMS:	os = "RTEMS";			break;
-#ifdef CONFIG_ARTOS
-	case IH_OS_ARTOS:	os = "ARTOS";			break;
-#endif
-#ifdef CONFIG_LYNXKDI
-	case IH_OS_LYNXOS:	os = "LynxOS";			break;
-#endif
-	default:		os = "Unknown OS";		break;
-	}
-
-	switch (image_get_arch (hdr)) {
-	case IH_ARCH_INVALID:	arch = "Invalid CPU";		break;
-	case IH_ARCH_ALPHA:	arch = "Alpha";			break;
-	case IH_ARCH_ARM:	arch = "ARM";			break;
-	case IH_ARCH_AVR32:	arch = "AVR32";			break;
-	case IH_ARCH_BLACKFIN:	arch = "Blackfin";		break;
-	case IH_ARCH_I386:	arch = "Intel x86";		break;
-	case IH_ARCH_IA64:	arch = "IA64";			break;
-	case IH_ARCH_M68K:	arch = "M68K"; 			break;
-	case IH_ARCH_MICROBLAZE:arch = "Microblaze"; 		break;
-	case IH_ARCH_MIPS64:	arch = "MIPS 64 Bit";		break;
-	case IH_ARCH_MIPS:	arch = "MIPS";			break;
-	case IH_ARCH_NIOS2:	arch = "Nios-II";		break;
-	case IH_ARCH_NIOS:	arch = "Nios";			break;
-	case IH_ARCH_PPC:	arch = "PowerPC";		break;
-	case IH_ARCH_S390:	arch = "IBM S390";		break;
-	case IH_ARCH_SH:	arch = "SuperH";		break;
-	case IH_ARCH_SPARC64:	arch = "SPARC 64 Bit";		break;
-	case IH_ARCH_SPARC:	arch = "SPARC";			break;
-	default:		arch = "Unknown Architecture";	break;
-	}
-
-	switch (image_get_type (hdr)) {
-	case IH_TYPE_INVALID:	type = "Invalid Image";		break;
-	case IH_TYPE_STANDALONE:type = "Standalone Program";	break;
-	case IH_TYPE_KERNEL:	type = "Kernel Image";		break;
-	case IH_TYPE_RAMDISK:	type = "RAMDisk Image";		break;
-	case IH_TYPE_MULTI:	type = "Multi-File Image";	break;
-	case IH_TYPE_FIRMWARE:	type = "Firmware";		break;
-	case IH_TYPE_SCRIPT:	type = "Script";		break;
-	case IH_TYPE_FLATDT:	type = "Flat Device Tree";	break;
-	default:		type = "Unknown Image";		break;
-	}
-
-	switch (image_get_comp (hdr)) {
-	case IH_COMP_NONE:	comp = "uncompressed";		break;
-	case IH_COMP_GZIP:	comp = "gzip compressed";	break;
-	case IH_COMP_BZIP2:	comp = "bzip2 compressed";	break;
-	default:		comp = "unknown compression";	break;
-	}
+	os = image_get_os_name (image_get_os (hdr));
+	arch = image_get_arch_name (image_get_arch (hdr));
+	type = image_get_type_name (image_get_type (hdr));
+	comp = image_get_comp_name (image_get_comp (hdr));
 
 	printf ("%s %s %s (%s)", arch, os, type, comp);
 }
diff --git a/common/image.c b/common/image.c
index 6eee83d..6726f03 100644
--- a/common/image.c
+++ b/common/image.c
@@ -193,3 +193,91 @@
 		*data = 0;
 	}
 }
+
+#ifndef USE_HOSTCC
+const char* image_get_os_name (uint8_t os)
+{
+	const char *name;
+
+	switch (os) {
+	case IH_OS_INVALID:	name = "Invalid OS";		break;
+	case IH_OS_NETBSD:	name = "NetBSD";		break;
+	case IH_OS_LINUX:	name = "Linux";			break;
+	case IH_OS_VXWORKS:	name = "VxWorks";		break;
+	case IH_OS_QNX:		name = "QNX";			break;
+	case IH_OS_U_BOOT:	name = "U-Boot";		break;
+	case IH_OS_RTEMS:	name = "RTEMS";			break;
+#ifdef CONFIG_ARTOS
+	case IH_OS_ARTOS:	name = "ARTOS";			break;
+#endif
+#ifdef CONFIG_LYNXKDI
+	case IH_OS_LYNXOS:	name = "LynxOS";		break;
+#endif
+	default:		name = "Unknown OS";		break;
+	}
+
+	return name;
+}
+
+const char* image_get_arch_name (uint8_t arch)
+{
+	const char *name;
+
+	switch (arch) {
+	case IH_ARCH_INVALID:	name = "Invalid Architecture";	break;
+	case IH_ARCH_ALPHA:	name = "Alpha";			break;
+	case IH_ARCH_ARM:	name = "ARM";			break;
+	case IH_ARCH_AVR32:	name = "AVR32";			break;
+	case IH_ARCH_BLACKFIN:	name = "Blackfin";		break;
+	case IH_ARCH_I386:	name = "Intel x86";		break;
+	case IH_ARCH_IA64:	name = "IA64";			break;
+	case IH_ARCH_M68K:	name = "M68K"; 			break;
+	case IH_ARCH_MICROBLAZE:name = "Microblaze"; 		break;
+	case IH_ARCH_MIPS64:	name = "MIPS 64 Bit";		break;
+	case IH_ARCH_MIPS:	name = "MIPS";			break;
+	case IH_ARCH_NIOS2:	name = "Nios-II";		break;
+	case IH_ARCH_NIOS:	name = "Nios";			break;
+	case IH_ARCH_PPC:	name = "PowerPC";		break;
+	case IH_ARCH_S390:	name = "IBM S390";		break;
+	case IH_ARCH_SH:	name = "SuperH";		break;
+	case IH_ARCH_SPARC64:	name = "SPARC 64 Bit";		break;
+	case IH_ARCH_SPARC:	name = "SPARC";			break;
+	default:		name = "Unknown Architecture";	break;
+	}
+
+	return name;
+}
+
+const char* image_get_type_name (uint8_t type)
+{
+	const char *name;
+
+	switch (type) {
+	case IH_TYPE_INVALID:	name = "Invalid Image";		break;
+	case IH_TYPE_STANDALONE:name = "Standalone Program";	break;
+	case IH_TYPE_KERNEL:	name = "Kernel Image";		break;
+	case IH_TYPE_RAMDISK:	name = "RAMDisk Image";		break;
+	case IH_TYPE_MULTI:	name = "Multi-File Image";	break;
+	case IH_TYPE_FIRMWARE:	name = "Firmware";		break;
+	case IH_TYPE_SCRIPT:	name = "Script";		break;
+	case IH_TYPE_FLATDT:	name = "Flat Device Tree";	break;
+	default:		name = "Unknown Image";		break;
+	}
+
+	return name;
+}
+
+const char* image_get_comp_name (uint8_t comp)
+{
+	const char *name;
+
+	switch (comp) {
+	case IH_COMP_NONE:	name = "uncompressed";		break;
+	case IH_COMP_GZIP:	name = "gzip compressed";	break;
+	case IH_COMP_BZIP2:	name = "bzip2 compressed";	break;
+	default:		name = "unknown compression";	break;
+	}
+
+	return name;
+}
+#endif
diff --git a/include/image.h b/include/image.h
index c605d66..9ac25c9 100644
--- a/include/image.h
+++ b/include/image.h
@@ -290,6 +290,10 @@
 	return (image_get_os (hdr) == os);
 }
 
+ulong image_multi_count (image_header_t *hdr);
+void image_multi_getimg (image_header_t *hdr, ulong idx,
+			ulong *data, ulong *len);
+
 #ifndef USE_HOSTCC
 static inline int image_check_target_arch (image_header_t *hdr)
 {
@@ -322,10 +326,11 @@
 
 	return 1;
 }
-#endif
 
-ulong image_multi_count (image_header_t *hdr);
-void image_multi_getimg (image_header_t *hdr, ulong idx,
-			ulong *data, ulong *len);
+const char* image_get_os_name (uint8_t os);
+const char* image_get_arch_name (uint8_t arch);
+const char* image_get_type_name (uint8_t type);
+const char* image_get_comp_name (uint8_t comp);
+#endif /* USE_HOSTCCa */
 
 #endif	/* __IMAGE_H__ */
